package main

import "fmt"

func main() {
	fmt.Println("----------------nil slice case start -------------")
	var nilSlice1 []int

	if nilSlice1 == nil {
		fmt.Println("直接声明的切片默认值为：nil")
		fmt.Println(len(nilSlice1))
		fmt.Println(cap(nilSlice1))
		fmt.Println(&nilSlice1)
	}

	var nilSlice2 = *new([]int)

	if nilSlice2 == nil {
		fmt.Println("直接声明的切片默认值为：nil")
	}

	fmt.Println("----------------nil slice case end -------------")

	fmt.Println("----------------empty slice case start -------------")

	var s2 = []int{}
	var s3 = make([]int, 0)

	if s2 != nil {
		fmt.Println("s2直接声明的切片默认值为：empty")
		fmt.Println(len(s2))
		fmt.Println(cap(s2))
		fmt.Println(&s2)
	}

	if s3 != nil {
		fmt.Println("s3直接声明的切片默认值为：empty")
		fmt.Println(len(s3))
		fmt.Println(cap(s3))
		fmt.Println(&s3)
	}
	fmt.Println("----------------empty slice case end -------------")
}
